"""
逻辑运算符
    概述： 它适用于 多条件判断 ，即：同时满足多个条件，还是满足多个条件中的任意一个条件，还是取反等操作

    分类：
        and:
            逻辑与  并且的意思， 既满足条件A 又满足 条件B ，需要满足两个条件
            只要 and 左右 有一个 False  结果一定是False
            只有 and 左右两边都是 True 结果才一定是True
        or
            逻辑或  或者的意思， 要么满足 条件A ，要么满足条件B 只需要满足一个条件即可
            只要 or 左右 有一个 True 结果就一定是True
        not
            逻辑非， 取反的意思
            即： False -> 取反的结果是True
                True -> 取反的结果是False
"""
# 1. and 演示 ，逻辑与
a, b = 5, 3
print(a > 4 and b <= 3)  # True

print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False

print("=" * 30)
# or 演示 短路或
print(a>4 or b <=3) # True
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False) # False

# not演示 取反
print("="*30)
print(not True)
print(not False)

flag = 3 > 5 # False
print(flag)
print(not flag)

print(not not True)

print('-' * 30)
# 逻辑与 and  操作数字的时候，把0当做False，其他数字都是True
# 逻辑与操作数字的时候，如果遇到0 结果一定是0，如果没有0，结果是最后一个数字
print(10 and 0 and 5) # 0
print(0 and 3 and 5) # 0
print(0 and 0 and 0) # 0
print(9 and 5 and 8)

print('-'*30)
# 逻辑或 or 操作数字 把0当做False，其他数字都是True
# 逻辑与操作数字的时候，如果遇到全部是0 结果一定是0，如果没有0，结果是第一个数字
print(0 or 8 or 5)
print(0 or 0 or 0) # 0
print(8 or 0 or 5)
print(8 or 5 or 0)


